package com.example.cloudcashierpos.ui;

import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;

import com.alibaba.fastjson.JSON;

import java.io.File;
import java.io.IOException;
import java.security.InvalidParameterException;

import retrofit2.Retrofit;
import retrofit2.converter.fastjson.FastJsonConverterFactory;

public class BaseApplication extends Application {
//
//    private static BaseApplication mInstance = null;
//
//    private PrintDataService p = null;//蓝牙打印服务
//    private SharedPreferencesUtil spUtil;
//    private DaoSession daoSession;
//    private MainMenuListFragment mMenuListFragment;//主页侧边栏
//    private SQLiteDatabase db;
//    private User user;//登录账号
//    private String machine;//手持机编码
//    private Ringtone r;
//    private Retrofit retrofit;
//    private static Context mContext;
//
//    public SerialPortFinder mSerialPortFinder = new SerialPortFinder();
//    private SerialPort mSerialPort = null;
//
//    public SerialPort getSerialPort() throws SecurityException, IOException, InvalidParameterException {
//        if (mSerialPort == null) {
//            /* Read serial port parameters */
//            SharedPreferences sp = getSharedPreferences("android_serialport_api.sample_preferences", MODE_PRIVATE);
//            //String path = sp.getString("DEVICE", "");
//            String path = "/dev/ttyS3";//指定端口
//            //int baudrate = Integer.decode(sp.getString("BAUDRATE", "-1"));
//            int baudrate = 9600;//指定速率
//            /* Check parameters */
//            if ( (path.length() == 0) || (baudrate == -1)) {
//                throw new InvalidParameterException();
//            }
//
//            /* Open the serial port */
//            mSerialPort = new SerialPort(new File(path), baudrate, 0);
//        }
//        return mSerialPort;
//    }
//
//    public void closeSerialPort() {
//        if (mSerialPort != null) {
//            mSerialPort.close();
//            mSerialPort = null;
//        }
//    }
//
//    public static BaseApplication getInstance() {
//        if (mInstance == null) {
//            mInstance = new BaseApplication();
//        }
//        return mInstance;
//    }
//
//    //加载数据库驱动
//    static {
//        try {
//            String driverName1 = "net.sourceforge.jtds.jdbc.Driver";
//            String driverName = "oracle.jdbc.driver.OracleDriver";
//            Class.forName(driverName1);
//            Class.forName(driverName);
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//        }
//    }
//
//    @Override
//    public void onCreate() {
//        super.onCreate();
//        mInstance = this;
//        if (!BuildConfig.DEBUG){
//            CrashHandler.active(this);
//        }
//        mContext = getApplicationContext();
//        //setupDatabase();
//
//        Uri notification = Uri.parse("android.resource://" + this.getPackageName() + "/" + com.sop.sale.R.raw.wet);
//        r = RingtoneManager.getRingtone(this, notification);
//        AccessAI.getInstance().create();
//    }
//
//    public static Context getContext() {
//        return mContext;
//    }
//
//    public Retrofit getRetrofit() {
//        if (retrofit == null) {
//            retrofit = new Retrofit.Builder()
//                    .baseUrl(Constants.BASE_URL)
//                    .addConverterFactory(FastJsonConverterFactory.create())
//                    .build();
//        }
//        return retrofit;
//    }
//
//    public SharedPreferencesUtil getSpUtil() {
//        if (spUtil == null)
//            spUtil = new SharedPreferencesUtil(this);
//        return spUtil;
//    }
//
//    //设置本地数据库
//    public void setupDatabase() {
//        String paths = Constants.APP_PATH;//Environment.getExternalStorageDirectory().getAbsolutePath()+"/商琦云";
//        File file = new File(paths);
//        if (!file.exists()) {
//            file.mkdir();
//        }
//
//        DatabaseContext dbContext = new DatabaseContext(this);
//        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(dbContext, Constants.DB_FILE_NAME, null);
//
//        db = helper.getWritableDatabase();
//        DaoMaster daoMaster = new DaoMaster(db);
//        daoSession = daoMaster.newSession();
//
//        //判断原.db文件是否存在,存在则复制
//        File dbFile = getDatabasePath("CloudPos.db");
//        File dbDest = new File(Constants.DB_FILE_NAME);
//        if (dbFile.exists() && dbDest.exists()) {
//            try {
//                Utils.fileCopy(dbFile, dbDest);
//                dbFile.delete();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//
//    public DaoSession getDaoSession() {
//        if (daoSession==null)
//            setupDatabase();
//        return daoSession;
//    }
//
//
//    public SQLiteDatabase getDb() {
//        return db;
//    }
//
//    public User getUser() {
//        if (user==null){
//            String strUser = getSpUtil().get(Constants.spClass.SP_USER_INFO);
//            user  =  JSON.parseObject(strUser,User.class);
//        }
//        return user;
//    }
//
//    public String getReadMe(){
//        return  getSpUtil().get(Constants.spClass.SP_SYS_README);
//    }
//    public void setUser(User user) {
//        this.user = user;
//    }
//
//    public MainMenuListFragment getMenuListFragment() {
//        return mMenuListFragment;
//    }
//
//    public void setMenuListFragment(MainMenuListFragment menuListFragment) {
//        mMenuListFragment = menuListFragment;
//    }
//
//    public boolean isProbational() {//true为试用，false为正式版
//        return getSpUtil().getBoolean(Constants.spClass.SP_PROBATIONAL,false);
//    }
//
//    public PrintDataService getPrintDataService() {
//        return p;
//    }
//
//    public void setPrintDataService(PrintDataService p) {
//        this.p = p;
//    }
//
//    public String getMachine() {
//        return machine;
//    }
//
//    public void setMachine(String machine) {
//        this.machine = machine;
//    }
//
//    /**
//     * 播放扫描声音
//     *
//     * Play scanning
//     */
//    public void song() {
//        if (r.isPlaying()) {
//            r.stop();
//        }
//        r.play();
//    }
}
